home *** CD-ROM | disk | FTP | other *** search
/ Linux Cubed Series 3: Developer Tools / Linux Cubed Series 3 - Developer Tools.iso / devel / lang / lisp / gcl-1.000 / gcl-1 / gcl-1.0 / h / external.h < prev    next >
Encoding:
C/C++ Source or Header  |  1994-05-07  |  14.0 KB  |  718 lines

  1.  
  2.  
  3. #define T_INT int
  4. /*
  5.  Copyright (C) 1994 M. Hagiya, W. Schelter, T. Yuasa
  6.  
  7. This file is part of GNU Common Lisp, herein referred to as GCL
  8.  
  9. GCL is free software; you can redistribute it and/or modify it under
  10. the terms of the GNU LIBRARY GENERAL PUBLIC LICENSE as published by
  11. the Free Software Foundation; either version 2, or (at your option)
  12. any later version.
  13.  
  14. GCL is distributed in the hope that it will be useful, but WITHOUT
  15. ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
  16. FITNESS FOR A PARTICULAR PURPOSE.  See the GNU Library General Public 
  17. License for more details.
  18.  
  19. You should have received a copy of the GNU Library General Public License 
  20. along with GCL; see the file COPYING.  If not, write to the Free Software
  21. Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
  22.  
  23. */
  24.  
  25. /*  alloc.c  */
  26. char *alloc_page();
  27. object alloc_object();
  28. char *alloc_contblock();
  29. char *alloc_relblock();
  30. T_INT init_alloc();
  31. T_INT init_alloc_function();
  32.  
  33. /*  array.c  */
  34. enum aelttype array_elttype();
  35. T_INT array_allocself();
  36. object aref();
  37. object aset();
  38. object aref1();
  39. object aset1();
  40. T_INT adjust_displaced();
  41. T_INT init_array_function();
  42.  
  43. /*  assignment.s  */
  44. T_INT setq();
  45. T_INT init_assignment();
  46.  
  47. /*  backq.c  */
  48. int backq_level;
  49.  
  50. /*  bds.c  */
  51. T_INT bds_unwind();
  52.  
  53. /*  big.c  */
  54.  
  55. object copy_big();
  56. object copy_to_big();
  57. bool big_zerop();
  58. int big_sign();
  59. int big_compare();
  60. int complement_big();
  61. object big_minus();
  62. T_INT add_int_big();
  63. T_INT sub_int_big();
  64. T_INT mul_int_big();
  65. int div_int_big();
  66. object big_plus();
  67. object big_times();
  68. int big_length();
  69. int big_quotient_remainder();
  70. T_INT normalize_big();
  71. object normalize_big_to_object();
  72. double big_to_double();
  73.  
  74. /* bind.c */
  75. object ANDoptional;
  76. object ANDrest;
  77. object ANDkey;
  78. object ANDallow_other_keys;
  79. object ANDaux;
  80. object Kallow_other_keys;
  81. T_INT lambda_bind();
  82. object find_special();
  83. object let_bind();
  84. object letA_bind();
  85. T_INT init_bind();
  86.  
  87. /* block.c */
  88. object Sblock;
  89. T_INT init_block();
  90.  
  91. /*  cfun.c  */
  92. object make_cfun();
  93. object MF();
  94. object MM();
  95. object make_function();
  96. object make_si_function();
  97. object make_special_form();
  98. object make_macro();
  99. T_INT init_cfun();
  100.  
  101. /*  character.d  */
  102. object STreturn;
  103. object STspace;
  104. object STrubout;
  105. object STpage;
  106. object STtab;
  107. object STbackspace;
  108. object STlinefeed;
  109. object STnewline;
  110. int digitp();
  111. int digit_weight();
  112. bool char_eq();
  113. bool char_equal();
  114. object coerce_to_character();
  115. T_INT init_character();
  116. T_INT init_character_function();
  117.  
  118. /*  catch.c  */
  119. T_INT init_catch();
  120.  
  121. /*  cmpaux.c  */
  122. char object_to_char();
  123. T_INT set_VV();
  124. int object_to_int();
  125. float object_to_float();
  126. double object_to_double();
  127.  
  128. /*  error.c  */
  129. T_INT FEerror();
  130. T_INT FEwrong_type_argument();
  131. T_INT FEtoo_few_arguments();
  132. T_INT FEtoo_few_argumentsF();
  133. T_INT FEtoo_many_arguments();
  134. T_INT FEtoo_many_argumentsF();
  135. T_INT FEunexpected_keyword();
  136. T_INT FEinvalid_form();
  137. T_INT FEunbound_variable();
  138. T_INT FEinvalid_variable();
  139. T_INT FEundefined_function();
  140. T_INT FEinvalid_function();
  141. object Kerror;
  142. object Kwrong_type_argument;
  143. object Ktoo_few_arguments;
  144. object Ktoo_many_arguments;
  145. object Kunexpected_keyword;
  146. object Kinvalid_form;
  147. object Kunbound_variable;
  148. object Kinvalid_variable;
  149. object Kundefined_function;
  150. object Kinvalid_function;
  151. object wrong_type_argument();
  152. object Kcatch;
  153. object Kcatchall;
  154. object Kprotect;
  155. int init_error();
  156.  
  157. /*  eval.c  */
  158. object Sapply;
  159. object Sfuncall;
  160. T_INT funcall();
  161. T_INT funcall_no_event();
  162. T_INT lispcall();
  163. T_INT lispcall_no_event();
  164. T_INT symlispcall();
  165. T_INT symlispcall_no_event();
  166. object simple_lispcall();
  167. object simple_lispcall_no_event();
  168. object simple_symlispcall();
  169. object simple_symlispcall_no_event();
  170. T_INT super_funcall();
  171. T_INT super_funcall_no_event();
  172. T_INT eval();
  173. object Vevalhook;
  174. object Vapplyhook;
  175. object ieval();
  176. object ifuncall1();
  177. object ifuncall2();
  178. object ifuncall3();
  179. T_INT init_eval();
  180.  
  181. /*  unixfasl.c  fasload.c  */
  182. T_INT fasload();
  183.  
  184. /*  file.d  */
  185. object Vstandard_input;
  186. object Vstandard_output;
  187. object Verror_output;
  188. object Vquery_io;
  189. object Vdebug_io;
  190. object Vterminal_io;
  191. object Vtrace_output;
  192. object Kabort;
  193. object Kdirection;
  194. object Kinput;
  195. object Koutput;
  196. object Kio;
  197. object Kprobe;
  198. object Kelement_type;
  199. object Kdefault;
  200. object Kif_exists;
  201. object Kerror;
  202. object Knew_version;
  203. object Krename;
  204. object Krename_and_delete;
  205. object Koverwrite;
  206. object Kappend;
  207. object Ksupersede;
  208. object Kif_does_not_exist;
  209. object Kerror;
  210. object Kcreate;
  211. object Kprint;
  212. object Kverbose;
  213. object Kif_does_not_exist;
  214. object Kset_default_pathname;
  215. object Vload_verbose;
  216. object FASL_string;
  217. T_INT end_of_stream();
  218. bool input_stream_p();
  219. bool output_stream_p();
  220. object stream_element_type();
  221. object open_stream();
  222. T_INT close_stream();
  223. object make_two_way_stream();
  224. object make_echo_stream();
  225. object make_string_input_stream();
  226. object make_string_output_stream();
  227. object get_output_stream_string();
  228. int readc_stream();
  229. T_INT unreadc_stream();
  230. T_INT writec_stream();
  231. T_INT writestr_stream();
  232. T_INT unwritec_stream();
  233. T_INT flush_stream();
  234. bool stream_at_end();
  235. bool listen_stream();
  236. int file_position();
  237. int file_position_set();
  238. int file_length();
  239. int file_column();
  240. T_INT load();
  241. T_INT init_file();
  242. T_INT init_file_function();
  243. object read_fasl_data();
  244.  
  245. #ifdef UNIX
  246. /*  unixfsys.c  */
  247. T_INT coerce_to_filename();
  248. FILE *backup_fopen();
  249. int file_exists();
  250. int file_len();
  251. #else
  252. /*  filesystem.c  */
  253. FILE *backup_fopen();
  254. int file_exists();
  255. int file_len();
  256. #endif
  257.  
  258. /*  frame.c  */
  259. T_INT unwind();
  260. frame_ptr frs_sch();
  261. frame_ptr frs_sch_catch();
  262.  
  263. /*  gbc.c  */
  264. bool GBC_enable;
  265. T_INT GBC();
  266. T_INT init_GBC();
  267.  
  268. /*  let.c  */
  269. T_INT let_var_list();
  270. T_INT init_let();
  271.  
  272. /*  lex.c  */
  273. object assoc_eq();
  274. T_INT lex_fun_bind();
  275. T_INT lex_macro_bind();
  276. T_INT lex_tag_bind();
  277. T_INT lex_block_bind();
  278. object lex_tag_sch();
  279. object lex_block_sch();
  280.  
  281. /*  list.d  */
  282. object Ktest;
  283. object Ktest_not;
  284. object Kkey;
  285. bool endp1();
  286. object car();
  287. object cdr();
  288. object kar();
  289. object kdr();
  290. object caar();
  291. object cadr();
  292. object cdar();
  293. object cddr();
  294. object caaar();
  295. object caadr();
  296. object cadar();
  297. object caddr();
  298. object cdaar();
  299. object cdadr();
  300. object cddar();
  301. object cdddr();
  302. object caaaar();
  303. object caaadr();
  304. object caadar();
  305. object caaddr();
  306. object cadaar();
  307. object cadadr();
  308. object caddar();
  309. object cadddr();
  310. object cdaaar();
  311. object cdaadr();
  312. object cdadar();
  313. object cdaddr();
  314. object cddaar();
  315. object cddadr();
  316. object cdddar();
  317. object cddddr();
  318. object nth();
  319. object nthcdr();
  320. object make_cons();
  321. T_INT stack_cons();
  322. object list();
  323. object listA();
  324. object append();
  325. object copy_list();
  326. bool member_eq();
  327. T_INT delete_eq();
  328. object nconc();
  329. T_INT init_list_function();
  330.  
  331. /*  macros.c  */
  332. object Vmacroexpand_hook;
  333. object siSdefmacroA;
  334. object macro_expand();
  335. T_INT init_macros();
  336.  
  337. /*  main.c  */
  338. int ARGC;
  339. char **ARGV;
  340. #ifdef UNIX
  341. char **ENVP;
  342. #endif
  343. char lisp_implementation_version[];
  344. char system_directory[];
  345. object siVsystem_directory;
  346. #ifdef UNIX
  347. char *kcl_self;
  348. #endif
  349. bool initflag;
  350. char *merge_system_directory();
  351.  
  352. /*  mapfun.c  */
  353. T_INT init_mapfun();
  354.  
  355. /*  multival.c  */
  356. T_INT init_multival();
  357.  
  358. /*  number.c  */
  359. int fixint();
  360. int fixnnint();
  361. object shortfloat_zero;
  362. object longfloat_zero;
  363. object make_fixnum();
  364. object make_ratio();
  365. object make_shortfloat();
  366. object make_longfloat();
  367. object make_complex();
  368. T_INT init_number();
  369. T_INT init_number_function();
  370. double number_to_double();
  371. int b_clr_op();
  372. int b_set_op();
  373. int b_1_op();
  374. int b_2_op();
  375. int b_c1_op();
  376. int b_c2_op();
  377. int and_op();
  378. int ior_op();
  379. int xor_op();
  380. int eqv_op();
  381. int nand_op();
  382. int nor_op();
  383. int andc1_op();
  384. int andc2_op();
  385. int orc1_op();
  386. int orc2_op();
  387.  
  388. /*  num_pred.c  */
  389. int complex_zerop();
  390. int number_zerop();
  391. int number_plusp();
  392. int number_mimusp();
  393.  
  394. /*  num_comp.c  */
  395. int number_compare();
  396.  
  397. /*  num_arith  */
  398. object bignum2();
  399. object bignum3();
  400. object number_to_complex();
  401. object complex_plus();
  402. object number_plus();
  403. object number_negate();
  404. object number_minus();
  405. object number_times();
  406. object number_divide();
  407. object integer_divide1();
  408. object get_gcd();
  409. object get_lcm();
  410. object one_plus();
  411. object one_minus();
  412.  
  413. /*  num_co.c  */
  414. object double_to_integer();
  415. object remainder();
  416.  
  417. /*  num_log.c  */
  418. int double_shift();
  419. object shift_integer();
  420.  
  421. /*  package.d  */
  422. bool member_string_equal();
  423. object lisp_package;
  424. object user_package;
  425. object keyword_package;
  426. object system_package;
  427. object Vpackage;
  428. object Kinternal;
  429. object Kexternal;
  430. object Kinherited;
  431. object Knicknames;
  432. object Kuse;
  433. int intern_flag;
  434. object uninterned_list;
  435. object make_package();
  436. object in_package();
  437. object rename_package();
  438. object find_package();
  439. object coerce_to_package();
  440. object current_package();
  441. int pack_hash();
  442. object intern();
  443. object find_symbol();
  444. bool unintern();
  445. T_INT export();
  446. T_INT unexport();
  447. T_INT import();
  448. T_INT shadowing_import();
  449. T_INT shadow();
  450. T_INT use_package();
  451. T_INT unuse_package();
  452. T_INT init_package();
  453. T_INT init_package_function();
  454.  
  455. /*  pathname.d  */
  456. object Vdefault_pathname_defaults;
  457. object Kwild;
  458. object Knewest;
  459. object Kstart;
  460. object Kend;
  461. object Kjunk_allowed;
  462. object Khost;
  463. object Kdevice;
  464. object Kdirectory;
  465. object Kname;
  466. object Ktype;
  467. object Kversion;
  468. object Kdefaults;
  469. object Kroot;
  470. object Kcurrent;
  471. object Kparent;
  472. object Kper;
  473. object parse_namestring();
  474. object coerce_to_pathname();
  475. object default_device();
  476. object merge_pathnames();
  477. object namestring();
  478. object coerce_to_namestring();
  479.  
  480. /*  prediate.c  */
  481. bool eql();
  482. bool equal();
  483. bool equalp();
  484. T_INT init_predicate_function();
  485.  
  486. /*  print.d  */
  487. object Kupcase;
  488. object Kdowncase;
  489. object Kcapitalize;
  490. object Kstream;
  491. object Kescape;
  492. object Kpretty;
  493. object Kcircle;
  494. object Kbase;
  495. object Kradix;
  496. object Kcase;
  497. object Kgensym;
  498. object Klevel;
  499. object Klength;
  500. object Karray;
  501. object Vprint_escape;
  502. object Vprint_pretty;
  503. object Vprint_circle;
  504. object Vprint_base;
  505. object Vprint_radix;
  506. object Vprint_case;
  507. object Vprint_gensym;
  508. object Vprint_level;
  509. object Vprint_length;
  510. object Vprint_array;
  511. object *PRINTvs_top;
  512. object *PRINTvs_limit;
  513. object PRINTstream;
  514. bool PRINTescape;
  515. bool PRINTpretty;
  516. bool PRINTcircle;
  517. int PRINTbase;
  518. bool PRINTradix;
  519. object PRINTcase;
  520. bool PRINTgensym;
  521. int PRINTlevel;
  522. int PRINTlength;
  523. bool PRINTarray;
  524. int (*write_ch_fun)();
  525. T_INT edit_double();
  526. T_INT write_object();
  527. T_INT setupPRINTdefault();
  528. T_INT cleanupPRINT();
  529. T_INT write_object_by_default();
  530. T_INT terpri_by_default();
  531. bool potential_number_p();
  532. object princ();
  533. object prin1();
  534. object print();
  535. object terpri();
  536. T_INT init_print_function();
  537. object siSpretty_print_format;
  538.  
  539. /*  read.d  */
  540. object standard_readtable;
  541. object Vreadtable;
  542. object Vread_default_float_format;
  543. object Vread_base;
  544. object Vread_suppress;
  545. object Kstart;
  546. object Kend;
  547. object Kradix;
  548. object Kjunk_allowed;
  549. object READtable;
  550. int READdefault_float_format;
  551. int READbase;
  552. bool READsuppress;
  553. object siSsharp_comma;
  554. bool escape_flag;
  555. object delimiting_char;
  556. bool detect_eos_flag;
  557. bool in_list_flag;
  558. bool dot_flag;
  559. bool preserving_whitespace_flag;
  560. object default_dispatch_macro;
  561. object big_register_0;
  562. int sharp_eq_context_max;
  563. T_INT setup_READtable();
  564. T_INT setup_READ();
  565. T_INT setup_standard_READ();
  566. object read_char();
  567. T_INT unread_char();
  568. object peek_char();
  569. object read_object_recursive();
  570. object read_object_non_recursive();
  571. object standard_read_object_non_recursive();
  572. object read_object();
  573. object parse_number();
  574. object parse_integer();
  575. object copy_readtable();
  576. object current_readtable();
  577. object patch_sharp();
  578. T_INT init_read();
  579. T_INT init_read_function();
  580. object read_fasl_vector();
  581.  
  582. /*  reference.c  */
  583. object symbol_function();
  584. T_INT init_reference();
  585. object Sfunction;
  586.  
  587. /*  sequence.d  */
  588. object alloc_simple_vector();
  589. object alloc_simple_bitvector();
  590. object elt();
  591. object elt_set();
  592. int length();
  593. object reverse();
  594. object nreverse();
  595. T_INT init_sequence_function();
  596.  
  597. /*  structure.c  */
  598. object siLs_data;
  599. object structure_ref();
  600. object structure_set();
  601. object structure_to_list();
  602. T_INT init_structure_function();
  603.  
  604. /*  string.d  */
  605. object alloc_simple_string();
  606. object make_simple_string();
  607. bool string_eq();
  608. bool string_equal();
  609. object copy_simple_string();
  610. object coerce_to_string();
  611. bool member_char();
  612. T_INT init_string_function();
  613.  
  614. /*  symbol.d  */
  615. object string_register;
  616. object gensym_prefix;
  617. int gensym_counter;
  618. object gentemp_prefix;
  619. int gentemp_counter;
  620. object token;
  621. T_INT set_up_string_register();
  622. object make_symbol();
  623. object make_ordinary();
  624. object make_special();
  625. object make_constant();
  626. object make_si_ordinary();
  627. object make_si_special();
  628. object make_si_constant();
  629. object make_keyword();
  630. object symbol_value();
  631. object getf();
  632. object get();
  633. object putf();
  634. object putprop();
  635. bool remf();
  636. object remprop();
  637. bool keywordp();
  638. T_INT init_symbol();
  639. T_INT init_symbol_function();
  640. object gensym();        /*  to be deleted  */
  641.  
  642. #ifdef UNIX
  643. /*  unixsys.c  */
  644. #else
  645. /*  sys.c  */
  646. #endif
  647.  
  648. #ifdef UNIX
  649. /*  unixtime.c  */
  650. object unix_time_to_universal_time();
  651. #else
  652. /*  time.c  */
  653. #endif
  654.  
  655. /*  toplevel.c  */
  656. object Sspecial,Sdeclare;
  657. object siSvariable_documentation;
  658. object siSfunction_documentation;
  659. T_INT toplevel_eval();
  660. T_INT init_toplevel();
  661.  
  662. /*  typespec.c  */
  663. object
  664. St,        Snil,        Scommon,
  665. Snull,        Scons,        Slist,        Ssymbol,
  666. Sarray,        Svector,    Sbit_vector,    Sstring,
  667. Ssequence,
  668. Ssimple_array,    Ssimple_vector,    Ssimple_bit_vector,
  669.                         Ssimple_string,
  670. Sfunction,    Scompiled_function,
  671.                 Spathname,    Scharacter,
  672. Snumber,    Srational,    Sfloat,        Sstring_char,
  673. Sinteger,    Sratio,        Sshort_float,    Sstandard_char,
  674. Sfixnum,    Scomplex,    Ssingle_float,    Spackage,
  675. Sbignum,    Srandom_state,    Sdouble_float,    Sstream,
  676. Sbit,        Sreadtable,    Slong_float,    Shash_table;
  677. object Sstructure;
  678. object Ssatisfies;
  679. object Smember;
  680. object Snot;
  681. object Sor;
  682. object Sand;
  683. object Svalues;
  684. object Smod;
  685. object Ssigned_byte;
  686. object Sunsigned_byte;
  687. object Ssigned_char;
  688. object Sunsigned_char;
  689. object Ssigned_short;
  690. object Sunsigned_short;
  691. object SA;
  692. object Splusp;
  693. object TSor_symbol_string;
  694. object TSor_string_symbol;
  695. object TSor_symbol_string_package;
  696. object TSnon_negative_integer;
  697. object TSpositive_number;
  698. object TSor_integer_float;
  699. object TSor_rational_float;
  700. #ifdef UNIX
  701. object TSor_pathname_string_symbol;
  702. #endif
  703. object TSor_pathname_string_symbol_stream;
  704. T_INT init_typespec();
  705. T_INT   int_typespec_function();
  706.  
  707. int interrupt_flag;        /* console interupt flag */
  708. int interrupt_enable;        /* console interupt enable */
  709.  
  710. /*  CMPtemp  */
  711. object CMPtemp;
  712. object CMPtemp1;
  713. object CMPtemp2;
  714. object CMPtemp3;
  715.  
  716. /* funlink.c */
  717. void call_or_link();
  718.